/**
* 版权所有:版权所有(C) 2020，卓信科技
* 系统名称:FOL2020-财务在线
* 文件名称:ResultHelper.java
* 模块名称:ResultHelper
* 创建日期:2020年5月19日
* 作        者:Baisong
* 内容摘要:返回结果编码常量类
*/
package com.zx.emanage.util.gen;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;

/**
 * 类  名  称:ResultHelper
 *
 * 内容摘要:返回结果编码常量类
 *
 * 作        者:Baisong
 */
public class ResultHelper
{

	/**
	 * 请求成功CODE
	 */
	public final static String RET_SUCCESS = "000";// 请求成功!

	/**
	 * 请求异常CODE
	 */
	public final static String RET_ERROR = "002";// 操作失败，请联系客服!
	
	public static String MSG_RET_SUCCESS = "success";

    public static String MSG_RET_ERROR = "error";

	/**
	 * 网络异常CODE
	 */
	public final static String RET_NETWORK_ERROR = "001"; // 网络连接异常，请稍后重试!

	public final static String RET_CODE_NOTFOUND = "302";// 此帐号不存在

	public final static String RET_PWD_ERROR = "303"; // 密码错误

	/**
	 * 登录账号密码
	 */
	public final static String RET_CODE_BLANK = "300"; // 登录帐号为空

	public final static String RET_PWD_BLANK = "301"; // 登录密码为空

	/**
	 * 其他异常
	 */
	public final static String RET_OTHER_LOGIN = "998"; // 您的帐号可能在其他设备登录，如非本人操作请去ESM修改密码，再重新登录!

	public final static String RET_SESSION_TIMEOUT = "999"; // 登录超时,请重新登录!

	/**
	 * 请求成功返回数据
	 * 
	 * @param t
	 *            返回数据
	 * @return
	 */
	public static <T> ResultBean<T> getSuccess(T t)
	{
		return new ResultBean<T>(RET_SUCCESS, "操作成功!", t);
	}

	public static <T> ResultBean<T> getSuccess(T t, String msg)
	{
		return new ResultBean<T>(RET_SUCCESS, msg, t);
	}

	/**
	 * 请求错误返回数据
	 * 
	 * @param t
	 *            返回数据
	 * @return
	 */
	public static <T> ResultBean<T> getError(T t)
	{
		return new ResultBean<T>(RET_ERROR, "操作失败，请联系客服!", t);
	}

	/**
	 * 请求错误返回数据
	 * 
	 * @param t
	 *            返回数据
	 * @return
	 */
	public static <T> ResultBean<T> getError(String msg, T t)
	{
		return new ResultBean<T>(RET_ERROR, msg, t);
	}

	/**
	 * 请求错误返回数据
	 * 
	 * @param t
	 *            返回数据
	 * @return
	 */
	public static <T> ResultBean<T> getError(String code, String msg, T t)
	{
		return new ResultBean<T>(code, msg, t);
	}

	/**
	 * 请求网络异常返回数据
	 * 
	 * @param t
	 *            返回数据
	 * @return
	 */
	public static <T> ResultBean<T> getNetworkError(T t)
	{
		return new ResultBean<T>(RET_NETWORK_ERROR, "网络连接异常，请稍后重试!", t);
	}

	/**
	 * 帐号其他设备登录
	 * 
	 * @param t
	 *            返回数据
	 * @return
	 */
	public static <T> ResultBean<T> getOtherLoginError(T t)
	{
		// return new ResultBean<T>(RET_OTHER_LOGIN,
		// "您的帐号可能在其他设备登录，如非本人操作请去ESM修改密码，再重新登录!", t);
		return new ResultBean<T>(RET_OTHER_LOGIN, "请重新登录!", t);
	}

	/**
	 * 
	 * @Title: getSuccessReturnData
	 * @param @param
	 *            paramMap
	 * @param @return
	 * @return Map<String,Object>
	 * @author: wangyihan
	 * @time: 2020年7月31日 下午2:39:16 history: 1、2020年7月31日 下午2:39:16 wangyihan 创建方法
	 *
	 */
	public static Map<String, Object> getSuccessReturnData(Map<String, Object> paramMap)
	{
		Map<String, Object> resMap = new HashMap<String, Object>();
		resMap.put("ret_data", paramMap);
		resMap.put("ret_code", RET_SUCCESS);
		resMap.put("ret_msg", "操作成功!");
		return resMap;
	}

	/**
	 * 
	 * @Title: getReturnData
	 * @param @param
	 *            paramMap
	 * @param @return
	 * @return Map<String,Object>
	 * @author: wangyihan
	 * @time: 2020年7月31日 下午2:39:16 history: 1、2020年7月31日 下午2:39:16 wangyihan 创建方法
	 *
	 */
	public static Map<String, Object> getReturnData(Map<String, Object> paramMap, String ret_code, String ret_msg)
	{
		Map<String, Object> resMap = new HashMap<String, Object>();
		resMap.put("ret_data", paramMap);
		resMap.put("ret_code", ret_code);
		// 判断空
		if (StringUtils.isNotBlank(ret_msg))
		{
			resMap.put("ret_msg", ret_msg);
		} 
		else
		{
			// 成功
			if (ret_code.equals(RET_SUCCESS))
			{
				resMap.put("ret_msg", "操作成功!");
			}
			// 失败
			else if (ret_code.equals(RET_ERROR))
			{
				resMap.put("ret_msg", "操作失败，请联系客服!");
			}
			// 其他
			else
			{
				resMap.put("ret_msg", ret_msg);
			}
		}
		return resMap;
	}

}
